static const guint16 keymap_x112xtkbd[] = {
  [0x20] = 0x39,       /* 32 (XK_space) => 57 via 57 (KEY_SPACE) */
  [0x27] = 0x28,       /* 39 (XK_apostrophe) => 40 via 40 (KEY_APOSTROPHE) */
  [0x2c] = 0x33,       /* 44 (XK_comma) => 51 via 51 (KEY_COMMA) */
  [0x2d] = 0xc,        /* 45 (XK_minus) => 12 via 12 (KEY_MINUS) */
  [0x2e] = 0x34,       /* 46 (XK_period) => 52 via 52 (KEY_DOT) */
  [0x2f] = 0x35,       /* 47 (XK_slash) => 53 via 53 (KEY_SLASH) */
  [0x30] = 0xb,        /* 48 (XK_0) => 11 via 11 (KEY_0) */
  [0x31] = 0x2,        /* 49 (XK_1) => 2 via 2 (KEY_1) */
  [0x32] = 0x3,        /* 50 (XK_2) => 3 via 3 (KEY_2) */
  [0x33] = 0x4,        /* 51 (XK_3) => 4 via 4 (KEY_3) */
  [0x34] = 0x5,        /* 52 (XK_4) => 5 via 5 (KEY_4) */
  [0x35] = 0x6,        /* 53 (XK_5) => 6 via 6 (KEY_5) */
  [0x36] = 0x7,        /* 54 (XK_6) => 7 via 7 (KEY_6) */
  [0x37] = 0x8,        /* 55 (XK_7) => 8 via 8 (KEY_7) */
  [0x38] = 0x9,        /* 56 (XK_8) => 9 via 9 (KEY_8) */
  [0x39] = 0xa,        /* 57 (XK_9) => 10 via 10 (KEY_9) */
  [0x3b] = 0x27,       /* 59 (XK_semicolon) => 39 via 39 (KEY_SEMICOLON) */
  [0x3d] = 0xd,        /* 61 (XK_equal) => 13 via 13 (KEY_EQUAL) */
  [0x41] = 0x1e,       /* 65 (XK_a) => 30 via 30 (KEY_A) */
  [0x42] = 0x30,       /* 66 (XK_b) => 48 via 48 (KEY_B) */
  [0x43] = 0x2e,       /* 67 (XK_c) => 46 via 46 (KEY_C) */
  [0x44] = 0x20,       /* 68 (XK_d) => 32 via 32 (KEY_D) */
  [0x45] = 0x12,       /* 69 (XK_e) => 18 via 18 (KEY_E) */
  [0x46] = 0x21,       /* 70 (XK_f) => 33 via 33 (KEY_F) */
  [0x47] = 0x22,       /* 71 (XK_g) => 34 via 34 (KEY_G) */
  [0x48] = 0x23,       /* 72 (XK_h) => 35 via 35 (KEY_H) */
  [0x49] = 0x17,       /* 73 (XK_i) => 23 via 23 (KEY_I) */
  [0x4a] = 0x24,       /* 74 (XK_j) => 36 via 36 (KEY_J) */
  [0x4b] = 0x25,       /* 75 (XK_K) => 37 via 37 (KEY_K) */
  [0x4c] = 0x26,       /* 76 (XK_l) => 38 via 38 (KEY_L) */
  [0x4d] = 0x32,       /* 77 (XK_m) => 50 via 50 (KEY_M) */
  [0x4e] = 0x31,       /* 78 (XK_n) => 49 via 49 (KEY_N) */
  [0x4f] = 0x18,       /* 79 (XK_o) => 24 via 24 (KEY_O) */
  [0x50] = 0x19,       /* 80 (XK_p) => 25 via 25 (KEY_P) */
  [0x51] = 0x10,       /* 81 (XK_q) => 16 via 16 (KEY_Q) */
  [0x52] = 0x13,       /* 82 (XK_r) => 19 via 19 (KEY_R) */
  [0x53] = 0x1f,       /* 83 (XK_s) => 31 via 31 (KEY_S) */
  [0x54] = 0x14,       /* 84 (XK_t) => 20 via 20 (KEY_T) */
  [0x55] = 0x16,       /* 85 (XK_u) => 22 via 22 (KEY_U) */
  [0x56] = 0x2f,       /* 86 (XK_v) => 47 via 47 (KEY_V) */
  [0x57] = 0x11,       /* 87 (XK_w) => 17 via 17 (KEY_W) */
  [0x58] = 0x2d,       /* 88 (XK_x) => 45 via 45 (KEY_X) */
  [0x59] = 0x15,       /* 89 (XK_y) => 21 via 21 (KEY_Y) */
  [0x5a] = 0x2c,       /* 90 (XK_z) => 44 via 44 (KEY_Z) */
  [0x5b] = 0x1a,       /* 91 (XK_bracketleft) => 26 via 26 (KEY_LEFTBRACE) */
  [0x5c] = 0x2b,       /* 92 (XK_backslash) => 43 via 43 (KEY_BACKSLASH) */
  [0x5d] = 0x1b,       /* 93 (XK_bracketright) => 27 via 27 (KEY_RIGHTBRACE) */
  [0x60] = 0x29,       /* 96 (XK_grave) => 41 via 41 (KEY_GRAVE) */
  [0x61] = 0x1e,       /* 97 (XK_a) => 30 via 30 (KEY_A) */
  [0x62] = 0x30,       /* 98 (XK_b) => 48 via 48 (KEY_B) */
  [0x63] = 0x2e,       /* 99 (XK_c) => 46 via 46 (KEY_C) */
  [0x64] = 0x20,       /* 100 (XK_d) => 32 via 32 (KEY_D) */
  [0x65] = 0x12,       /* 101 (XK_e) => 18 via 18 (KEY_E) */
  [0x66] = 0x21,       /* 102 (XK_f) => 33 via 33 (KEY_F) */
  [0x67] = 0x22,       /* 103 (XK_g) => 34 via 34 (KEY_G) */
  [0x68] = 0x23,       /* 104 (XK_h) => 35 via 35 (KEY_H) */
  [0x69] = 0x17,       /* 105 (XK_i) => 23 via 23 (KEY_I) */
  [0x6a] = 0x24,       /* 106 (XK_j) => 36 via 36 (KEY_J) */
  [0x6b] = 0x25,       /* 107 (XK_K) => 37 via 37 (KEY_K) */
  [0x6c] = 0x26,       /* 108 (XK_l) => 38 via 38 (KEY_L) */
  [0x6d] = 0x32,       /* 109 (XK_m) => 50 via 50 (KEY_M) */
  [0x6e] = 0x31,       /* 110 (XK_n) => 49 via 49 (KEY_N) */
  [0x6f] = 0x18,       /* 111 (XK_o) => 24 via 24 (KEY_O) */
  [0x70] = 0x19,       /* 112 (XK_p) => 25 via 25 (KEY_P) */
  [0x71] = 0x10,       /* 113 (XK_q) => 16 via 16 (KEY_Q) */
  [0x72] = 0x13,       /* 114 (XK_r) => 19 via 19 (KEY_R) */
  [0x73] = 0x1f,       /* 115 (XK_s) => 31 via 31 (KEY_S) */
  [0x74] = 0x14,       /* 116 (XK_t) => 20 via 20 (KEY_T) */
  [0x75] = 0x16,       /* 117 (XK_u) => 22 via 22 (KEY_U) */
  [0x76] = 0x2f,       /* 118 (XK_v) => 47 via 47 (KEY_V) */
  [0x77] = 0x11,       /* 119 (XK_w) => 17 via 17 (KEY_W) */
  [0x78] = 0x2d,       /* 120 (XK_x) => 45 via 45 (KEY_X) */
  [0x79] = 0x15,       /* 121 (XK_y) => 21 via 21 (KEY_Y) */
  [0x7a] = 0x2c,       /* 122 (XK_z) => 44 via 44 (KEY_Z) */
  [0xd7] = 0x37,       /* 215 (XK_multiply) => 55 via 55 (KEY_KPASTERISK) */
  [0xff08] = 0xe,      /* 65288 (XK_BackSpace) => 14 via 14 (KEY_BACKSPACE) */
  [0xff09] = 0xf,      /* 65289 (XK_Tab) => 15 via 15 (KEY_TAB) */
  [0xff0d] = 0x1c,     /* 65293 (XK_Return) => 28 via 28 (KEY_ENTER) */
  [0xff13] = 0x146,    /* 65299 (XK_Pause) => 326 via 119 (KEY_PAUSE) */
  [0xff14] = 0x46,     /* 65300 (XK_Scroll_Lock) => 70 via 70 (KEY_SCROLLLOCK) */
  [0xff15] = 0x54,     /* 65301 (XK_Sys_Req) => 84 via 99 (KEY_SYSRQ) */
  [0xff1b] = 0x1,      /* 65307 (XK_Escape) => 1 via 1 (KEY_ESC) */
  [0xff50] = 0x147,    /* 65360 (XK_Home) => 327 via 102 (KEY_HOME) */
  [0xff51] = 0x14b,    /* 65361 (XK_Left) => 331 via 105 (KEY_LEFT) */
  [0xff52] = 0x148,    /* 65362 (XK_Up) => 328 via 103 (KEY_UP) */
  [0xff53] = 0x14d,    /* 65363 (XK_Right) => 333 via 106 (KEY_RIGHT) */
  [0xff54] = 0x150,    /* 65364 (XK_Down) => 336 via 108 (KEY_DOWN) */
  [0xff55] = 0x149,    /* 65365 (XK_Page_Up) => 329 via 104 (KEY_PAGEUP) */
  [0xff56] = 0x151,    /* 65366 (XK_Page_Down) => 337 via 109 (KEY_PAGEDOWN) */
  [0xff57] = 0x14f,    /* 65367 (XK_End) => 335 via 107 (KEY_END) */
  [0xff63] = 0x152,    /* 65379 (XK_Insert) => 338 via 110 (KEY_INSERT) */
  [0xff6a] = 0x175,    /* 65386 (XK_Help) => 373 via 138 (KEY_HELP) */
  [0xff7f] = 0x45,     /* 65407 (XK_Num_Lock) => 69 via 69 (KEY_NUMLOCK) */
  [0xff8d] = 0x11c,    /* 65421 (XK_KP_Enter) => 284 via 96 (KEY_KPENTER) */
  [0xffab] = 0x4e,     /* 65451 (XK_KP_Add) => 78 via 78 (KEY_KPPLUS) */
  [0xffac] = 0x5c,     /* 65452 (XK_KP_Separator) => 92 via 95 (KEY_KPJPCOMMA) */
  [0xffad] = 0x4a,     /* 65453 (XK_KP_Subtract) => 74 via 74 (KEY_KPMINUS) */
  [0xffae] = 0x53,     /* 65454 (XK_KP_Decimal) => 83 via 83 (KEY_KPDOT) */
  [0xffaf] = 0x135,    /* 65455 (XK_KP_Divide) => 309 via 98 (KEY_KPSLASH) */
  [0xffb0] = 0x52,     /* 65456 (XK_KP_0) => 82 via 82 (KEY_KP0) */
  [0xffb1] = 0x4f,     /* 65457 (XK_KP_1) => 79 via 79 (KEY_KP1) */
  [0xffb2] = 0x50,     /* 65458 (XK_KP_2) => 80 via 80 (KEY_KP2) */
  [0xffb3] = 0x51,     /* 65459 (XK_KP_3) => 81 via 81 (KEY_KP3) */
  [0xffb4] = 0x4b,     /* 65460 (XK_KP_4) => 75 via 75 (KEY_KP4) */
  [0xffb5] = 0x4c,     /* 65461 (XK_KP_5) => 76 via 76 (KEY_KP5) */
  [0xffb6] = 0x4d,     /* 65462 (XK_KP_6) => 77 via 77 (KEY_KP6) */
  [0xffb7] = 0x47,     /* 65463 (XK_KP_7) => 71 via 71 (KEY_KP7) */
  [0xffb8] = 0x48,     /* 65464 (XK_KP_8) => 72 via 72 (KEY_KP8) */
  [0xffb9] = 0x49,     /* 65465 (XK_KP_9) => 73 via 73 (KEY_KP9) */
  [0xffbd] = 0x59,     /* 65469 (XK_KP_Equal) => 89 via 117 (KEY_KPEQUAL) */
  [0xffbe] = 0x3b,     /* 65470 (XK_F1) => 59 via 59 (KEY_F1) */
  [0xffbf] = 0x3c,     /* 65471 (XK_F2) => 60 via 60 (KEY_F2) */
  [0xffc0] = 0x3d,     /* 65472 (XK_F3) => 61 via 61 (KEY_F3) */
  [0xffc1] = 0x3e,     /* 65473 (XK_F4) => 62 via 62 (KEY_F4) */
  [0xffc2] = 0x3f,     /* 65474 (XK_F5) => 63 via 63 (KEY_F5) */
  [0xffc3] = 0x40,     /* 65475 (XK_F6) => 64 via 64 (KEY_F6) */
  [0xffc4] = 0x41,     /* 65476 (XK_F7) => 65 via 65 (KEY_F7) */
  [0xffc5] = 0x42,     /* 65477 (XK_F8) => 66 via 66 (KEY_F8) */
  [0xffc6] = 0x43,     /* 65478 (XK_F9) => 67 via 67 (KEY_F9) */
  [0xffc7] = 0x44,     /* 65479 (XK_F10) => 68 via 68 (KEY_F10) */
  [0xffe1] = 0x2a,     /* 65505 (XK_Shift_L) => 42 via 42 (KEY_LEFTSHIFT) */
  [0xffe2] = 0x36,     /* 65506 (XK_Shift_R) => 54 via 54 (KEY_RIGHTSHIFT) */
  [0xffe3] = 0x1d,     /* 65507 (XK_Control_L) => 29 via 29 (KEY_LEFTCTRL) */
  [0xffe4] = 0x11d,    /* 65508 (XK_Control_R) => 285 via 97 (KEY_RIGHTCTRL) */
  [0xffe5] = 0x3a,     /* 65509 (XK_Caps_Lock) => 58 via 58 (KEY_CAPSLOCK) */
  [0xffe7] = 0x15b,    /* 65511 (XK_Meta_L) => 347 via 125 (KEY_LEFTMETA) */
  [0xffe8] = 0x15c,    /* 65512 (XK_Meta_R) => 348 via 126 (KEY_RIGHTMETA) */
  [0xffe9] = 0x38,     /* 65513 (XK_Alt_L) => 56 via 56 (KEY_LEFTALT) */
  [0xffea] = 0x138,    /* 65514 (XK_Alt_R) => 312 via 100 (KEY_RIGHTALT) */
  [0xffff] = 0x153,    /* 65535 (XK_Delete) => 339 via 111 (KEY_DELETE) */
};
